<?php
/*
 * 系统中的控制器负责分配任务给其他类，其他类完成绝大部份实际工作。
 *
*/
class WooController{
	private $applicationHelper;

	private function __construct(){}

	//run 是一个便捷发发，用于调用init 和handlerRequest 
	static function run(){
		$instance = new WooController();
		$instance->init();
		$instance->handlerRequest();
	}

	//init()只在应用第一次启动时运行
	function init(){
		//获取一个ApplicationHelper(应用程序助手)类的对象实例
		//ApplicationHelper(应用程序助手) 管理应用程序的配置信息
		$applicationHelper = WooControllerApplicationHelper::instance();
		//init() 初始化应用程序要使用的数据。
		$applicationHelper->init();
	}
	//handleRequest() 在用户的每个请求到来时运行
	function handlerRequest(){
		$request = new WooControllerRequest($dsn = 'main');
		//var_dump($request);
		//通过WooCommandResolver来获取一个Command对象，然后调用Command对象的execute方法来执行实际操作。
		$cmd_r = new WooCommandResolver();
		$cmd = $cmd_r->getCommand($request);
		//var_dump($request);
		$cmd->execute($request);

	}
	
}